# 检查目录层级下是否都包含BUILD.gn文件

import os

XTS_HOME = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
CHECK_DIR = os.path.join(XTS_HOME, "acts")

def find_missing_build_gn(root_dir, filename):
    missing_dirs = []
    # 遍历root_dir下的所有一级子目录
    for subdir in os.listdir(root_dir):
        subdir_path = os.path.join(root_dir, subdir)
        if "lite" in subdir_path:
            continue
        # 检查subdir_path是否是一个目录
        if os.path.isdir(subdir_path):
            for ssubdir in os.listdir(subdir_path):
                ssubdir_path = os.path.join(subdir_path, ssubdir)

                # 检查ssubdir_path是否是一个目录
                if os.path.isdir(ssubdir_path):
                    # 检查该目录中是否存在指定的文件
                    if not any(f == filename for f in os.listdir(ssubdir_path)):
                        missing_dirs.append(ssubdir_path)

    return missing_dirs


if __name__ == '__main__':

    # 检查目录
    current_dir = CHECK_DIR

    # 要检查的文件名
    file_to_check = 'BUILD.gn'

    # 查找并打印不包含BUILD.gn文件的二级子目录
    missing_dirs = find_missing_build_gn(current_dir, file_to_check)
    if missing_dirs:
        print("以下二级子目录不包含BUILD.gn文件：")
        for dir in missing_dirs:
            print(dir)
    else:
        print("所有二级子目录都包含BUILD.gn文件。")